package DAO;

import AccesoBD.AccesoBaseDatos;
import Dominio.Alumno;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

public class DAOInformacionAlumno {
    private final String TABLA_INFORMACION_ALUMNO = "informacion_alumno";
    private final String COLUMNA_CLAVE_INFORMACION_ALUMNO = "clave_info_alumno";
    private final String COLUMNA_NOMBRE_USUARIO = "nombre_usuario";    
    private final String COLUMNA_DIRECCION = "direccion";
    private final String COLUMNA_EDAD = "edad";
    private final String COLUMNA_TELEFONO = "telefono";
    private final String COLUMNA_SEXO = "sexo";
    
    private AccesoBaseDatos acceso;
    private Connection conexion = null;
    
    public DAOInformacionAlumno(){
        acceso = new AccesoBaseDatos();
        conexion = acceso.abrirConexion();
    }
    
    public void cerrarConexionADAOInformacionAlumno() {
        acceso.cerrarConexion(conexion);
    }
    
    public int registrarInformacionPersonal(Alumno alumno){
        int clave = -1;
        
        try {
            String nombreDeUsuario = alumno.getCuentaSesion().getNombreUsuario();
            String direccion = alumno.getDireccion();
            int edad = alumno.getEdad();
            String telefono = alumno.getTelefono();
            String sexo = alumno.getSexo();
            
            if(sexo.equals("Hombre")){
                sexo = "M";
            }
            else{
                sexo = "F";
            }
            
            Statement sentenciaInsercion = acceso.crearSentenciaBD(conexion);
            String queryInsertar = "INSERT INTO " + TABLA_INFORMACION_ALUMNO + " (" 
                    + COLUMNA_NOMBRE_USUARIO + ", " + COLUMNA_DIRECCION + ", " + COLUMNA_EDAD + ", "+ COLUMNA_TELEFONO +", "+ COLUMNA_SEXO +") "
                    + "VALUES ('" + nombreDeUsuario + "', '" + direccion + "', '" + edad +"', '" + telefono + "', '" + sexo + "');";
            sentenciaInsercion.executeUpdate(queryInsertar,  Statement.RETURN_GENERATED_KEYS);
            
             ResultSet resultSet = sentenciaInsercion.getGeneratedKeys();                    

            if(resultSet.next()){
                clave = resultSet.getInt(1);
            }     
            
            sentenciaInsercion.close();
        } catch (SQLException ex) {
            ex.printStackTrace();
            Logger.getLogger(DAOInformacionAlumno.class.getName()).log(Level.SEVERE, null, ex);
            System.out.println("Ocurió un problema al tratar de registrar la asignatura recursable");
            ex.printStackTrace();
        }
        
        return clave;
    }
    
    public int obtenerClaveInfoAlumno(String nombreUsuario){
        int claveInfo=-1;
        String query = "SELECT * FROM "+TABLA_INFORMACION_ALUMNO+" WHERE "+COLUMNA_NOMBRE_USUARIO+"='"+nombreUsuario+"';";
        try{
            Statement sentencia = acceso.crearSentenciaBD(conexion);
            ResultSet resultado = sentencia.executeQuery(query);
            if(resultado.next()){
                claveInfo=resultado.getInt(1);
            }
        }catch (SQLException ex){
            System.err.println("Problemas de SQL:\n"+ex.toString());
        }
        return claveInfo;
    }
}
